Message msg;
// *** Get a shared lock
try { stateLock.readLock(); try {
// i. Discard all msgs, if in NULL_STATE
// ii. Discard all msgs, if blocked
// *** Get a shared lock
try {
stateLock.readLock().acquire();
try {
// i. Discard all msgs, if in NULL_STATE